package com.ssy.lingxi.contract.model.vo.manage.request;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import java.io.Serializable;

/**
 * 更新合同付款计划VO
 * @author 伍将
 * @date 2021/2/24
 * @version 2.0.0
 */
public class ContractPayPlanUpdateVO implements Serializable {
    private static final long serialVersionUID = -3924388508979684479L;

    /**
     * 付款计划id（为0代表新增）
     */
    @NotNull(message = "付款计划id不能为空")
    @PositiveOrZero(message = "付款计划id不能为空")
    private Long id;

    /**
     * 付款次数
     */
    @NotNull(message = "付款次数需大于0")
    @Positive(message = "付款次数需大于0")
    private Integer payNum;

    /**
     * 付款阶段
     */
    @NotBlank(message = "付款阶段不能为空")
    private String payStage;

    /**
     * 预计付款时间(yyyy-MM-dd)
     */
    @NotBlank(message = "预计付款时间不能为空")
    private String expectPayTime;

    /**
     * 付款比率
     */
    @NotNull(message = "付款比率需大于0")
    @Positive(message = "付款比率需大于0")
    private Double payRatio;

    /**
     * 付款金额
     */
    @NotNull(message = "付款金额需大于0")
    @Positive(message = "付款金额需大于0")
    private Double payAmount;

    /**
     * 付款方式:1-账期，2-月结，3-现结
     */
    @NotNull(message = "付款方式不能为空")
    private Integer payWay;

    /**
     * 付款方式名称
     */
    @NotBlank(message = "付款方式不能为空")
    private String payWayName;

    /**
     * 付款参数（账期天数/请款日）
     */
    private Integer payParam;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getPayNum() {
        return payNum;
    }

    public void setPayNum(Integer payNum) {
        this.payNum = payNum;
    }

    public String getPayStage() {
        return payStage;
    }

    public void setPayStage(String payStage) {
        this.payStage = payStage;
    }

    public String getExpectPayTime() {
        return expectPayTime;
    }

    public void setExpectPayTime(String expectPayTime) {
        this.expectPayTime = expectPayTime;
    }

    public Double getPayRatio() {
        return payRatio;
    }

    public void setPayRatio(Double payRatio) {
        this.payRatio = payRatio;
    }

    public Double getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(Double payAmount) {
        this.payAmount = payAmount;
    }

    public Integer getPayWay() {
        return payWay;
    }

    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    public String getPayWayName() {
        return payWayName;
    }

    public void setPayWayName(String payWayName) {
        this.payWayName = payWayName;
    }

    public Integer getPayParam() {
        return payParam;
    }

    public void setPayParam(Integer payParam) {
        this.payParam = payParam;
    }
}
